package com.raos.example.utils;

import com.fasterxml.jackson.databind.JsonNode;
import com.fasterxml.jackson.databind.ObjectMapper;
import lombok.extern.slf4j.Slf4j;

/**
 * JSON 工具类
 *
 * @author raos
 * @date 2025-02-14
 */
@Slf4j
public class JsonUtil {

    private static final ObjectMapper OBJECT_MAPPER = new ObjectMapper();

    /**
     * 将json格式字符串转换为JsonNode对象
     *
     * @param jsonStr json格式字符
     * @return JsonNode对象
     */
    public static JsonNode toNode(String jsonStr) {
        try {
            return OBJECT_MAPPER.readTree(jsonStr);
        } catch (Exception e) {
            log.error("JSON解析失败，返回null，错误信息：", e);
            return null;
        }
    }


    /**
     * 将对象转换为json格式字符串
     *
     * @param obj 待转换对象
     * @return
     */
    public static String toJsonStr(Object obj) {
        try {
            return OBJECT_MAPPER.writeValueAsString(obj);
        } catch (Exception e) {
            log.error("对象转JSON字符串失败，返回null，错误信息：", e);
            return null;
        }
    }

}
